/**
 * MySQL配置示例文件
 * 复制此文件并重命名为 mysql-config.js 进行使用
 */
module.exports = {
    // 数据库配置
    database: {
        // 数据库类型
        type: 'mysql',

        // 数据库连接信息
        connection: {
            host: 'localhost',
            port: 3306,
            user: 'root',
            password: 'your_password',
            database: 'ecommerce_sample'
        },

        // 连接池配置（可选）
        pool: {
            min: 2,
            max: 10
        }
    },

    // 表配置
    tables: {
        // 包含的表（使用正则表达式匹配）
        include: [
            '.*_table'  // 所有以_table结尾的表
        ],

        // 排除的表（使用正则表达式匹配）
        exclude: [
            '.*_bak',   // 所有以_bak结尾的表
            'temp_.*'   // 所有以temp_开头的表
        ]
    },

    // 输出配置
    output: {
        // 基础输出目录
        baseDir: './output',

        // 表文档输出目录（相对于baseDir）
        tableDocsDir: 'tables',

        // 类型定义输出目录（相对于baseDir）
        typeDefsDir: 'types',

        // 关系图输出目录（相对于baseDir）
        diagramsDir: 'diagrams'
    },

    // 文档生成配置
    docGeneration: {
        // 文档格式：markdown 或 html
        format: 'markdown',

        // 是否包含表格详细说明
        includeTableDetails: true,

        // 是否包含字段详细说明
        includeFieldDetails: true,

        // 是否包含索引信息
        includeIndexes: true,

        // 是否包含表关系信息
        includeRelations: true,

        // 是否包含API示例
        includeAPIExamples: true,

        // API示例使用的语言
        apiExampleLanguages: ['curl', 'javascript', 'typescript']
    },

    // 类型生成配置
    typeGeneration: {
        // 接口前缀
        interfacePrefix: 'I',

        // 是否使用字符串表示大整数
        useStringForBigInt: true,

        // 是否生成只读属性
        readonly: false,

        // 是否生成查询参数接口
        generateQueryInterfaces: true,

        // 是否生成分页结果接口
        generatePaginationInterfaces: true,

        // 自定义类型映射
        typeMapping: {
            'tinyint(1)': 'boolean',
            'decimal': 'number',
            'text': 'string',
            'json': 'Record<string, any>',
            'datetime': 'string',
            'timestamp': 'string'
        }
    },

    // 缓存配置
    cache: {
        // 是否启用缓存
        enabled: true,

        // 缓存目录
        dir: './.cache',

        // 缓存过期时间（毫秒）
        ttl: 86400000  // 24小时
    },

    // 高级配置
    advanced: {
        // 自定义模板目录
        templatesDir: './my-templates',

        // 自定义Handlebars助手
        handlebarsHelpers: {
            // 自定义助手函数可以在这里定义
        },

        // 日志级别：debug, info, warn, error
        logLevel: 'info',

        // 是否在生成前备份现有文件
        backupBeforeGenerate: true
    }
}; 